// 引入 Vue 核心库，Vue 是用于构建用户界面的渐进式 JavaScript 框架
import Vue from 'vue'
// 引入 Vuex 状态管理库，Vuex 是专门为 Vue.js 应用程序开发的状态管理模式
import Vuex from 'vuex'

// 使用 Vue.use() 方法安装 Vuex 插件，使得 Vue 实例可以使用 Vuex 的功能
Vue.use(Vuex)

// 从 './state' 文件中引入 state 对象，state 用于存储应用的状态数据
import state from './state'
// 从 './mutations' 文件中引入 mutations 对象，mutations 包含多个用于更新 state 的函数
import mutations from './mutations'
// 从 './action' 文件中引入 action 对象，actions 包含多个用于处理异步操作并提交 mutations 的函数
import action from './action'
// 从 './getters' 文件中引入 getters 对象，getters 包含多个类似于计算属性的函数，用于获取 state 派生的数据
import getters from './getters'

// 导出一个新的 Vuex.Store 实例，该实例是整个应用的状态容器
export default new Vuex.Store({
  // strict 选项设置为 true 时，Vuex 会开启严格模式
  // 在严格模式下，任何修改 state 的操作如果不是通过 mutations 进行的，都会抛出错误
  // 注意：严格模式会有一定的性能开销，建议只在开发环境中使用
  strict: true,
  // 将引入的 state 对象赋值给 store 的 state 属性，作为应用的初始状态
  state,
  // 将引入的 mutations 对象赋值给 store 的 mutations 属性，用于修改 state
  mutations,
  // 将引入的 action 对象赋值给 store 的 actions 属性，用于处理异步操作
  // 注意：这里原代码可能拼写错误，正确的应该是 actions
  action,
  // 将引入的 getters 对象赋值给 store 的 getters 属性，用于获取 state 的派生状态
  getters
})
